<?php
ini_set('display_errors',1); error_reporting(E_ALL); 
    
if(!class_exists('DateTime'))
    require_once('lib/DateTime.class.php');
require_once('lib/RPCServer.class.php');


require_once('lib/PHPPDO/phppdo.php');
require_once('lib/rb.php');
require_once('TaskController.php');


$server = RPCServer::getInstance(); 

// подключаемся к БД используя ORM RedBean
R::setup('mysql:host=localhost;dbname=test', 'www', 'lkbyysteibpfqwf');

/**
 * Ф-ия обертка для вывода всех записей
 * 
 * @return array
 */
function printAll() 
{
    try {
        return TaskController::getAll();
    } catch (Exception $e) {
        return array('error'=>$e->getMessage());
    }
}

/**
 * Ф-ия обертка для добавления задачи
 * 
 * @param string $name
 * @return array
 */
function addTask($name) 
{
    try {
        return TaskController::addTask($name);
    } catch (Exception $e) {
        return array('error'=>$e->getMessage());
    }
}

/**
 * Ф-ия обертка для редактирования задачи
 * 
 * @param int $id
 * @param string $name
 * @return array
 */
function editTask($id, $name) 
{
    try {
        return TaskController::editTask($id, $name);
    } catch (Exception $e) {
        return array('error'=>$e->getMessage());
    }
}

/**
 * Ф-ия обертка для удаления задачи
 * 
 * @param int $id
 * @param string $name
 * @return array
 */
function deleteTask($id) 
{
    try {
        return TaskController::deleteTask($id);
    } catch (Exception $e) {
        return array('error'=>$e->getMessage());
    }
}

$server->addMethod("printAll");
$server->addMethod("addTask");
$server->addMethod("editTask");
$server->addMethod("deleteTask");

// для PHP 5 можно закоментарить
// $server->processRequest();

?>